communityfandomcom_de-20200214-history
Forum-Diskussionsfaden:Technische Fragen/@comment-20374729-20140617195108/@comment-5071245-20140618170643
Vielen Dank, dass Sie sich für ein Quälitätsprodukt aus dem Hause 20M61 entschieden haben. Ich hab da mal was in meinem Testwiki zusammen geschrieben und es funktioniert dort. Was ich noch nicht gemacht habe, ist das Design. Da ich nichts klauen wollte und ihr sicher irgendwelche Vorstellungen zu Schriftart, Farbe etc. habt, kann man dies sicher noch mit CSS klären (nicht so, wie im Wookieepedia mit Bildern, die ewig nicht geladen werden, sondern sauberen CSS Code). Von der Funktionsweise ist eigentlich alles eingebaut. MediaWiki:Common.js (Besser wäre es, wenn der Code ausgelagert würde in eine MediaWiki:Tabber.js -Datei und dann mittels importArticles eingebunden wird) //Diese Funktion liest alle übergebenen Variablen aus und gibt diese in einem Objekt wieder function Werteliste (querystring) { if (querystring ) return; var wertestring = querystring.slice(1); // Übergeben wird eine URL als Array. Der Link wir abgeschnitten var paare = wertestring.split('&'); var paar, name, wert; for (var i = 0; i < paare.length; i++) { paar = paarei.split('='); name = paar0; wert = paar1; name = unescape(name).replace('+', ' '); wert = unescape(wert).replace('+', ' '); thisname = wert; } var HTML_link = window.location + ''; this'PageName' = HTML_link.split('=')0.split('/')4.replace(/_/g, ' ').split('?')0; } var Version = 'Kanon'; // Standardmäßig soll ein Artikel mit Kanon geöffnet werden var HTMLAgument = new Werteliste(location.search); //Objekt HTMLArgument enthält alle übergebenen Variablen if (HTMLAgument'version') Version = HTMLAgument'version'; function ChangeVersion(NewVersion) { Version = NewVersion; //Alle DIV-Elemente, die im Artikel enthalten sind im Objekt "TabberObj" speichern var TabberObj = document.getElementById("WikiaArticle").getElementsByTagName('div'); //Jedes Objekt in "TabberObj" einzeln durchgehen und nacheinander bearbeiten for (var i= 0; i< TabberObj.length; i++){ //Überprüfen ob aktuelles Objekt ein SWTabber ist if (TabberObji.className.toLowerCase() 'swtabber'){ //Überprüfen, ob aktuelles Objekt angezeigt werden soll oder nicht if (TabberObji.getAttribute('data-Version').toLowerCase() Version.toLowerCase()) TabberObji.style.display = ''; else TabberObji.style.display = 'none'; } } //Funktion erfolgreich beenden (ein Returnwert ist nicht nötig, aber guter Stil). return true; } //Alle DIV-Elemente, die im Artikel enthalten sind im Objekt "TabberObj" speichern var TabberMenuObj = document.getElementById("WikiaArticle").getElementsByTagName('div'); //Jedes Objekt in "TabberMenuObj" einzeln durchgehen und nacheinander bearbeiten for (var i= 0; i< TabberMenuObj.length; i++){ //Wenn ein Menü-Objekt gefunden wird, dann diesem eine Funktion zuweisen. if (TabberMenuObji.className.toLowerCase() 'swtabber-button'){ TabberMenuObji.onclick=function(){ChangeVersion(this.getAttribute('data-Version'));}; } } function VaterNode(ReverseObjekt){ if (ReverseObjekt.getAttribute('data-Version')) return ReverseObjekt.getAttribute('data-Version'); if (ReverseObjekt.id 'WikiaArticle') return false; return (VaterNode(ReverseObjekt.parentNode)); } //Alle Links im Artikel heraus suchen var VersionLink = document.getElementById("WikiaArticle").getElementsByTagName('a'); for (i = 0; i < VersionLink.length; i++){ //Es darf kein Fragezeichen bereits enthalten sein (sonst ist es wahrscheinlich ein RED-Link) if(VersionLinki.href.split('?')1) continue; //Link ergänzen um Version in der er sich befindet. VersionLinki.href = VersionLinki.href+'?version='+VaterNode(VersionLinki.parentNode); } ChangeVersion(Version); Eine Vorlage habe ich auch schon gebaut. Damit es nicht zu Verwechslungen mit "Kanon" kommt, habe ich sie umbenannt in "Version" - Mir ist leider kein besserer Name eingefallen. '''Vorlage:Version' }}} |kanon |legend = |menü = Legend Kanon |#default = }} Verwendung Diese Vorlage dient dazu Kanon-Inhalt von Legend-Inhalt zu unterscheiden. Hierzu wird ein Menü am Anfang des Artikels gesetzt und in den einzelnen Abschnitten werden die jeweiligen Kanon oder Legend-Inhalte ergänzt. Die Vorlage muss in 3 Schritten verwendet werden: # Setzen des Menüs am Anfang der Seite # Beginn eines Kanon oder Legend-Abschnittes # Beenden des geöffneten Abschnittes. Zu 1: Zu 2: oder Zu 3: Kategorie:Vorlage Kategorie:Verwaltung Sie hat eine kleine Erklärung dabei und zwei Kategorien - kann alles gelöscht werden. Außerdem kommt sie mit einem Menü und den obigen Punkten. Da dieses Tabber-System vollautomatisch läuft, braucht man hier nur Punkte in der Vorlage ergänzen (also neben |kanon und |legend könnte man dann noch |clone-wars oder |hinter den kulissen ergänzen. Ja, die müssen klein Geschrieben werden. Ist das " ", dass die Variable in Kleinschreibung überführt. Somit ist es dann egal, ob man ihr alles in Großbuchstaben, gemischt oder klein übergibt. (Eine Fehlervermeidungsstrategie)) Achso: MINDESTENS muss "kanon" angegeben sein, da dies im JavaScript als "Standard" hinterlegt ist. Wenn man das heraus löscht, kann es sein, dass zunächst NICHTS angezeigt wird, bis man einen der anderen Button drückt. Testwiese: http://de.20m61.wikia.com/wiki/Anakin_Skywalker (Bitte erst 10 Minuten nach Veröffentlichung des Posts anschauen - hab in letzter Minute noch was geändert, damit das mit den Links funktioniert ... so viel Aufwand um die Links!)